﻿using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using ST.Buz.Base.Entity;
using ST.Buz.Base.Enums;

namespace ST.Buz.Base.Mapping
{
	public partial class Map_Sys_Session : IEntityTypeConfiguration<Sys_Session>
	{
		public void Configure(EntityTypeBuilder<Sys_Session> builder)
		{
			builder.HasIndex(m => new { m.UserID, m.Type })
				.HasName("IX_Sys_Session_UserID_Type")
				.IsClustered(false);

			builder.Property(e => e.UserID)
				.IsUnicode(false);

			builder.Property(e => e.SessionKey)
				.IsUnicode(false);

			builder.Property(e => e.Type)
				.HasDefaultValueSql("((" + (int)SessionType.用户名 + "))");

			builder.Property(e => e.LastVisitIP)
				.IsUnicode(false);

			builder.Property(e => e.RelatedOAuthID)
				.HasDefaultValueSql("((0))")
				.ValueGeneratedNever();

			builder.Property(e => e.AddTime)
				.HasDefaultValueSql("(getdate())")
				.ValueGeneratedNever();

			builder.Property(e => e.LastUpdate)
				.HasDefaultValueSql("(getdate())")
				.ValueGeneratedNever();

			builder.Property(e => e.LastVisit)
				.HasDefaultValueSql("(getdate())")
				.ValueGeneratedNever();
		}
	}
}
